package interfaz;

import java.util.Vector;

import javax.swing.JInternalFrame;

import modelo.Aula;
import modelo.CentroEstudios;
import modelo.Equipo;
import modelo.Hardware;
import modelo.Software;

import javax.swing.JScrollPane;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import javax.swing.JButton;
import javax.swing.SwingConstants;

public class VConsulta extends JInternalFrame {
	
	CentroEstudios centroEstudios;
	private DefaultTableModel modelo;
	private JTable table;
	private Vector<Aula> vAulas;
	private Vector<Equipo> vEquipos;
	private Vector<Software> vSoftwares;
	private Vector<Hardware> vHardwares;

	public VConsulta(CentroEstudios centroEstudios) {
		this.centroEstudios = centroEstudios;
 		setTitle("Consultas");
		setClosable(true);
		setBounds(100, 100, 894, 520);
		getContentPane().setLayout(null);
		
		this.vAulas = this.centroEstudios.vAulas;
		this.vEquipos = this.centroEstudios.vEquipos;
		this.vSoftwares = this.centroEstudios.vSoftwares;
		this.vHardwares = this.centroEstudios.vHardwares;
		
		JRadioButton rdbtnAulas = new JRadioButton("Aulas");
		rdbtnAulas.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent arg0) {
				cargarDatos(1);
			}
		});
		rdbtnAulas.setBounds(290, 32, 64, 23);
		getContentPane().add(rdbtnAulas);
		
		JRadioButton rdbtnEquipos = new JRadioButton("Equipos");
		rdbtnEquipos.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent arg0) {
				cargarDatos(2);
			}
		});
		rdbtnEquipos.setBounds(358, 32, 81, 23);
		getContentPane().add(rdbtnEquipos);
		
		JRadioButton rdbtnHardware = new JRadioButton("Hardware");
		rdbtnHardware.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent arg0) {
				cargarDatos(3);
			}
		});
		rdbtnHardware.setBounds(443, 32, 95, 23);
		getContentPane().add(rdbtnHardware);
		
		JRadioButton rdbtnSoftware = new JRadioButton("Software");
		rdbtnSoftware.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent arg0) {
				cargarDatos(4);
			}
		});
		rdbtnSoftware.setBounds(542, 32, 95, 23);
		getContentPane().add(rdbtnSoftware);
		
		ButtonGroup btngroup = new ButtonGroup();
		btngroup.add(rdbtnAulas);
		btngroup.add(rdbtnEquipos);
		btngroup.add(rdbtnSoftware);
		btngroup.add(rdbtnHardware);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(183, 63, 534, 330);
		getContentPane().add(scrollPane);
		
		table = new JTable();
		scrollPane.setViewportView(table);
		
		cargarDatos(1);
		rdbtnAulas.setEnabled(true);
		
		JButton btnVer = new JButton("Ver");
		btnVer.setBounds(403, 425, 117, 25);
		getContentPane().add(btnVer);
		
		rdbtnAulas.setSelected(true);
	}
	
	/**
	 * Carga los datos de la bd en la tabla
	 * @param tipo 1: Aulas; 2: Equipos 3: Hardware; 4: Software
	 */
	public void cargarDatos(int tipo){
		if(tipo==1){
			modelo = new DefaultTableModel();
			modelo.addColumn("idAula");
			modelo.addColumn("Capacidad");
			for (int i=0;i<vAulas.size();i++){
				Object[] linea = new Object[2];
				linea[0] = vAulas.elementAt(i).getIdAula();
				linea[1] = vAulas.elementAt(i).getCapacidad();
				modelo.addRow(linea);
			}
			table.setModel(modelo);
		}else if(tipo==2){
			modelo = new DefaultTableModel();
			modelo.addColumn("idEquipo");
			modelo.addColumn("Aula");
			for (int i=0;i<vEquipos.size();i++){
				Object[] linea = new Object[2];
				linea[0] = vEquipos.elementAt(i).getIdEquipo();
				linea[1] = vEquipos.elementAt(i).getCodAula();
				modelo.addRow(linea);
			}
			table.setModel(modelo);
		}else if(tipo==3){
			modelo = new DefaultTableModel();
			modelo.addColumn("idHardware");
			modelo.addColumn("Nombre");
			for (int i=0;i<vHardwares.size();i++){
				Object[] linea = new Object[2];
				linea[0] = vHardwares.elementAt(i).getIdHardware();
				linea[1] = vHardwares.elementAt(i).getNombre();
				modelo.addRow(linea);
			}
			table.setModel(modelo);
		}else{
			modelo = new DefaultTableModel();
			modelo.addColumn("idSoftware");
			modelo.addColumn("Nombre");
			for (int i=0;i<vSoftwares.size();i++){
				Object[] linea = new Object[2];
				linea[0] = vSoftwares.elementAt(i).getIdSoftware();
				linea[1] = vSoftwares.elementAt(i).getNombre();
				modelo.addRow(linea);
			}
			table.setModel(modelo);
		}
	}
}
